package m.jclecai.com.view.klpk;

import android.content.Context;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import m.jclecai.com.MyApplication;
import m.jclecai.com.R;
import m.jclecai.com.bean.klpk.bean.PokerBean;
import m.jclecai.com.utils.KlpkUtils;


/**
 * Created by andy on 2017/6/7.
 */

public class Poker {


    private final PokerBean.Category mCategory;

    private View mView=null;
    private TextView mTextView=null;
    //设置牌的值；
    public String pokerNumber;

    //// TODO: 2017/6/10 这里的话，我们如果要对其进行一个优化的话，可以这样，这里的其实无非就两种，叠加牌和非叠加牌；但是如果要这样优化的话，扩展性就不是很好了；
    //这里是显示的扑克的种类，我们通过传入种类显示不同的Poker的背景样式；
    public static final int  TYPE_PAIRS=0;
    public static final int  TYPE_SAME_COLOR=1;
    public static final int  TYPE_FLUSH=2;
    public static final int  TYPE_STRAIGHT_FLUSH=3;
    public static final int  TYPE_THREE_SHEETS=4;

    public static final int  TYPE_OPTIONAL=5;
    public static final int  TYPE_SELECT_ALL=6;


    public Poker(Context context, PokerBean pokerBean, int type) {
        //拿到要显示的牌的数字
        this.pokerNumber= KlpkUtils.pokerNumer[pokerBean.getNumber()];
        mCategory = pokerBean.getCategory();


        //如果是对子的话，我们就设置这个类型；
        if(TYPE_PAIRS==type){
            produceDefaultPoker(context);
        }else if(TYPE_SAME_COLOR==type){
            //这里表示同花；
            mView = View.inflate(context, R.layout.poker_same_color, null);

            ImageView imageView = (ImageView) mView.findViewById(R.id.iv_poker);
            imageView.setImageResource(KlpkUtils.sameColorRes[mCategory.ordinal()]);

        }else if(TYPE_FLUSH==type){
            //这里表示顺子；
            produceDefaultPoker(context);

        }else if(TYPE_STRAIGHT_FLUSH==type){
            //这里表示同花顺；
            mView = View.inflate(context, R.layout.poker_same_color, null);
            ImageView imageView = (ImageView) mView.findViewById(R.id.iv_poker);
            imageView.setImageResource(KlpkUtils.straightFlushRes[mCategory.ordinal()]);

        }else if(TYPE_THREE_SHEETS==type){
            //这里表示豹子；
            produceDefaultPoker(context);

        }else if(TYPE_OPTIONAL==type){
            //任选牌的系列；
            produceDefaultPoker(context);
        }else if(TYPE_SELECT_ALL==type){
            //这里的话，我们认为包选是一张特殊的牌，然后其值，我们是在上面设置了；
            mView= View.inflate(context,R.layout.poker_select_all,null);
            //FrameLayout.LayoutParams layoutParams=new FrameLayout.LayoutParams(BaseUtils.dip2px(context,100),BaseUtils.dip2px(context,100));
            //mView.setLayoutParams(layoutParams);
        }
    }

    private void produceDefaultPoker(Context context) {
        mView = View.inflate(context, R.layout.poker_default,null);
        mTextView = ((TextView) mView.findViewById(R.id.poker));
        //设置数字；
        mTextView.setText(pokerNumber);
        mTextView.setTypeface(MyApplication.getPokerTypeFace());
    }

    public View getView(){
        return mView;
    }
    public String getText(){
      return mTextView.getText().toString().trim();
    }

    public void setText(String text){
        mTextView.setText(text);
    }
}
